Fixed gtk_builder_value_from_string_type() to always assign the GError
authorTristan Van Berkom <tristan.van.berkom@gmail.com>
Tue, 6 Apr 2010 20:23:13 +0000 (16:23 -0400)
committerTristan Van Berkom <tristan.van.berkom@gmail.com>
Tue, 6 Apr 2010 20:25:43 +0000 (16:25 -0400)
when returning FALSE, fixes bgo #615000.

gtk/gtkbuilder.c

index 9aafaad4135c481bc9dd76331a2e3e30dec27d5a..7c1c6701fb610272971d493fce6099efb129af56 100644 (file)
@@ -1390,14 +1390,19 @@ gtk_builder_value_from_string_type (GtkBuilder   *builder,
         ret = FALSE;
       break;
     default:
-      g_set_error (error,
-                  GTK_BUILDER_ERROR,
-                  GTK_BUILDER_ERROR_INVALID_VALUE,
-                  "Unsupported GType `%s'",
-                  g_type_name (type));
       ret = FALSE;
       break;
     }
+  /* Catch unassigned error for object types as well as any unsupported types.
+   * While parsing GtkBuilder; object types are deserialized
+   * without calling gtk_builder_value_from_string_type().
+   */
+  if (!ret && error && *error == NULL) 
+    g_set_error (error,
+                GTK_BUILDER_ERROR,
+                GTK_BUILDER_ERROR_INVALID_VALUE,
+                "Unsupported GType `%s'", g_type_name (type));
 
   return ret;
 }